perm filename SUBR.F4[MUS,SYS] blob
sn#128753 filedate 1975-07-29 generic text, type T, neo UTF8
00100 C***** THIS ROUTINE DIVIDES OCTAVE INTO ANY NUMBER OF EQUAL PARTS
00200
00210 SUBROUTINE SUBR
00234 COMMON /INS/ INST(27),BG(60)
00258 COMMON P(30),INUM,IPAR,CNT(27),BT,PL(48),IREST,DF,DUR(27)
00282 C INUM=INST# IPAR=PARAM#
00306 C BT=BASIC TIME P1 WHEN SUBROUTINE IS CALLED
00330 C IF IREST IS <0, THAT NOTE WILL BE A REST.
00354 C INST=INST. NAME, BG=INSTS' BEGIN TIMES.
00378 C NOTE #S IN SUBROUTINE: (1-84) C4=37 FS4=43 C5=49 ETC.
00402 C F1=86 F15=100 (NO F16!)
00426
00500 C CALL SUBROUTINE FROM P12. P3 CAN BE NOTES OR NUMBS.
00600 X=P(3)
00700 IF(PL(3).EQ.1)GO TO 1
00800 IF(P(12).EQ.0)X=IFIX(X)
00900 C FOR RAND NOTES TO PRINT OUT FREQS.
01000 X=30.868*2**(X/12)
01100 C X=FREQ. IN HZ. BASED ON NOTE # IN P3.
01200 PL(3)=1.
01300 C THIS CAUSES FREQ. NUM TO PRINT INSTEAD OF LITERAL CHARACTERS.
01400 1 P(3)=X*2**(P(11)/P(12))
01500 C P12=# OF DIVISIONS OF THE OCTAVE. P11=CHROMATIC STEP IN THAT DIV.
01600 RETURN
01700 END
01800
01900 C STEPS ; TYPICAL INPUT FOR MICROTONE SUBROUTINE.
02000 C CLAR /P2 .3/P3 A3/P4 1000;
02100 C P11 NUM/0/1/2/3/4/5/6/7/8/9/FINE*;
02200 C P12 9 SUBR/END; OCTAVE IS DIVIDED INTO 9 PARTS.